perm filename SAMEFR.LSP[206,LSP] blob sn#381609 filedate 1978-09-18 generic text, type T, neo UTF8
(defun samefr (x y)
  (cond ((eq x y) t)
	((or (atom x) (atom y)) nil)
	(t (same (gopher x) (gopher y)))))

(defun same (x y)
  (and (eq (car x) (car y)) (samefr (cdr x) (cdr y))))

(defun gopher (x)
  (cond ((atom (car x)) x)
	(t (gopher (cons (caar x) (cons (cdar x) (cdr x))))) ))

(defun samefr1 (x y) (equal (flat x nil) (flat y nil)) )
(defun flat (x u) (cond ((atom x) (cons x u)) (t (flat (car x) (flat (cdr x) u)))))

(defun samefr2 (x y)
  (cond ((eq x y) t)
	((or (atom x) (atom y)) nil)
	(t (same2 (gopher2 (car x)(cdr x)) (gopher2 (car y)(cdr y))))))

(defun same2 (x y)
  (and (eq (car x) (car y)) (samefr2 (cdr x) (cdr y))))

(defun gopher2 (x y)
  (cond ((atom  x) (cons x y))
	(t (gopher2 (car x) (cons (cdr x) y))) ))

(defun samefr3 (x y) 
  (cond ((eq x y) t)
	((or (atom x) (atom y)) nil)
	(t (same3 (car x) (cdr x) (car y) (cdr y))) ))
(defun same3 (xa xd ya yd)
  (cond ((atom xa) 
	  (cond ((atom ya) (and (eq xa ya) (samefr3 xd yd)))
		(t (same3 xa xd (car ya) (cons (cdr ya) yd)))))
	((atom ya) (same3 (car xa) (cons (cdr xa) xd) ya yd))
	(t (same3 (car xa) (cons (cdr xa) xd) (car ya) (cons (cdr ya) yd)))))
	
(setq x1 '((((a.b).(c.d)).(e.f)).g) )
(setq y1 '((((a.b).(c.d)).(e.f)).g) )

(setq x2 '(((a.b).(c.d)).((e.g).(g.h))))
(setq y2 '(((a.b).(c.d)).((e.g).(g.h))))

(trace cons)


;(samefr x1 y1)  20 conses
;
;(1 ENTER CONS ((E . F) G)) 
;(1 EXIT CONS ((E . F) . G)) 
;(1 ENTER CONS (((A . B) C . D) ((E . F) . G))) 
;(1 EXIT CONS (((A . B) C . D) (E . F) . G)) 
;(1 ENTER CONS ((C . D) ((E . F) . G))) 
;(1 EXIT CONS ((C . D) (E . F) . G)) 
;(1 ENTER CONS ((A . B) ((C . D) (E . F) . G))) 
;(1 EXIT CONS ((A . B) (C . D) (E . F) . G)) 
;(1 ENTER CONS (B ((C . D) (E . F) . G))) 
;(1 EXIT CONS (B (C . D) (E . F) . G)) 
;(1 ENTER CONS (A (B (C . D) (E . F) . G))) 
;(1 EXIT CONS (A B (C . D) (E . F) . G)) 
;(1 ENTER CONS ((E . F) G)) 
;(1 EXIT CONS ((E . F) . G)) 
;(1 ENTER CONS (((A . B) C . D) ((E . F) . G))) 
;(1 EXIT CONS (((A . B) C . D) (E . F) . G)) 
;(1 ENTER CONS ((C . D) ((E . F) . G))) 
;(1 EXIT CONS ((C . D) (E . F) . G)) 
;(1 ENTER CONS ((A . B) ((C . D) (E . F) . G))) 
;(1 EXIT CONS ((A . B) (C . D) (E . F) . G)) 
;(1 ENTER CONS (B ((C . D) (E . F) . G))) 
;(1 EXIT CONS (B (C . D) (E . F) . G)) 
;(1 ENTER CONS (A (B (C . D) (E . F) . G))) 
;(1 EXIT CONS (A B (C . D) (E . F) . G)) 
;(1 ENTER CONS (D ((E . F) . G))) 
;(1 EXIT CONS (D (E . F) . G)) 
;(1 ENTER CONS (C (D (E . F) . G))) 
;(1 EXIT CONS (C D (E . F) . G)) 
;(1 ENTER CONS (D ((E . F) . G))) 
;(1 EXIT CONS (D (E . F) . G)) 
;(1 ENTER CONS (C (D (E . F) . G))) 
;(1 EXIT CONS (C D (E . F) . G)) 
;(1 ENTER CONS (F G)) 
;(1 EXIT CONS (F . G)) 
;(1 ENTER CONS (E (F . G))) 
;(1 EXIT CONS (E F . G)) 
;(1 ENTER CONS (F G)) 
;(1 EXIT CONS (F . G)) 
;(1 ENTER CONS (E (F . G))) 
;(1 EXIT CONS (E F . G)) T 
;(samefr1 x1 y1)  14 conses
;
;(1 ENTER CONS (G NIL)) 
;(1 EXIT CONS (G)) 
;(1 ENTER CONS (F (G))) 
;(1 EXIT CONS (F G)) 
;(1 ENTER CONS (E (F G))) 
;(1 EXIT CONS (E F G)) 
;(1 ENTER CONS (D (E F G))) 
;(1 EXIT CONS (D E F G)) 
;(1 ENTER CONS (C (D E F G))) 
;(1 EXIT CONS (C D E F G)) 
;(1 ENTER CONS (B (C D E F G))) 
;(1 EXIT CONS (B C D E F G)) 
;(1 ENTER CONS (A (B C D E F G))) 
;(1 EXIT CONS (A B C D E F G)) 
;(1 ENTER CONS (G NIL)) 
;(1 EXIT CONS (G)) 
;(1 ENTER CONS (F (G))) 
;(1 EXIT CONS (F G)) 
;(1 ENTER CONS (E (F G))) 
;(1 EXIT CONS (E F G)) 
;(1 ENTER CONS (D (E F G))) 
;(1 EXIT CONS (D E F G)) 
;(1 ENTER CONS (C (D E F G))) 
;(1 EXIT CONS (C D E F G)) 
;(1 ENTER CONS (B (C D E F G))) 
;(1 EXIT CONS (B C D E F G)) 
;(1 ENTER CONS (A (B C D E F G))) 
;(1 EXIT CONS (A B C D E F G)) T 
;(samefr x2 y2) 16 conses
;
;(1 ENTER CONS ((C . D) ((E . G) G . H))) 
;(1 EXIT CONS ((C . D) (E . G) G . H)) 
;(1 ENTER CONS ((A . B) ((C . D) (E . G) G . H))) 
;(1 EXIT CONS ((A . B) (C . D) (E . G) G . H)) 
;(1 ENTER CONS (B ((C . D) (E . G) G . H))) 
;(1 EXIT CONS (B (C . D) (E . G) G . H)) 
;(1 ENTER CONS (A (B (C . D) (E . G) G . H))) 
;(1 EXIT CONS (A B (C . D) (E . G) G . H)) 
;(1 ENTER CONS ((C . D) ((E . G) G . H))) 
;(1 EXIT CONS ((C . D) (E . G) G . H)) 
;(1 ENTER CONS ((A . B) ((C . D) (E . G) G . H))) 
;(1 EXIT CONS ((A . B) (C . D) (E . G) G . H)) 
;(1 ENTER CONS (B ((C . D) (E . G) G . H))) 
;(1 EXIT CONS (B (C . D) (E . G) G . H)) 
;(1 ENTER CONS (A (B (C . D) (E . G) G . H))) 
;(1 EXIT CONS (A B (C . D) (E . G) G . H)) 
;(1 ENTER CONS (D ((E . G) G . H))) 
;(1 EXIT CONS (D (E . G) G . H)) 
;(1 ENTER CONS (C (D (E . G) G . H))) 
;(1 EXIT CONS (C D (E . G) G . H)) 
;(1 ENTER CONS (D ((E . G) G . H))) 
;(1 EXIT CONS (D (E . G) G . H)) 
;(1 ENTER CONS (C (D (E . G) G . H))) 
;(1 EXIT CONS (C D (E . G) G . H)) 
;(1 ENTER CONS (G (G . H))) 
;(1 EXIT CONS (G G . H)) 
;(1 ENTER CONS (E (G G . H))) 
;(1 EXIT CONS (E G G . H)) 
;(1 ENTER CONS (G (G . H))) 
;(1 EXIT CONS (G G . H)) 
;(1 ENTER CONS (E (G G . H))) 
;(1 EXIT CONS (E G G . H)) T 
;(samefr1 x2 y2) 16 conses
;
;(1 ENTER CONS (H NIL)) 
;(1 EXIT CONS (H)) 
;(1 ENTER CONS (G (H))) 
;(1 EXIT CONS (G H)) 
;(1 ENTER CONS (G (G H))) 
;(1 EXIT CONS (G G H)) 
;(1 ENTER CONS (E (G G H))) 
;(1 EXIT CONS (E G G H)) 
;(1 ENTER CONS (D (E G G H))) 
;(1 EXIT CONS (D E G G H)) 
;(1 ENTER CONS (C (D E G G H))) 
;(1 EXIT CONS (C D E G G H)) 
;(1 ENTER CONS (B (C D E G G H))) 
;(1 EXIT CONS (B C D E G G H)) 
;(1 ENTER CONS (A (B C D E G G H))) 
;(1 EXIT CONS (A B C D E G G H)) 
;(1 ENTER CONS (H NIL)) 
;(1 EXIT CONS (H)) 
;(1 ENTER CONS (G (H))) 
;(1 EXIT CONS (G H)) 
;(1 ENTER CONS (G (G H))) 
;(1 EXIT CONS (G G H)) 
;(1 ENTER CONS (E (G G H))) 
;(1 EXIT CONS (E G G H)) 
;(1 ENTER CONS (D (E G G H))) 
;(1 EXIT CONS (D E G G H)) 
;(1 ENTER CONS (C (D E G G H))) 
;(1 EXIT CONS (C D E G G H)) 
;(1 ENTER CONS (B (C D E G G H))) 
;(1 EXIT CONS (B C D E G G H)) 
;(1 ENTER CONS (A (B C D E G G H))) 
;(1 EXIT CONS (A B C D E G G H)) T 
;(samefr2 x1 y1)  22 conses
;
;(1 ENTER CONS ((E . F) G)) 
;(1 EXIT CONS ((E . F) . G)) 
;(1 ENTER CONS ((C . D) ((E . F) . G))) 
;(1 EXIT CONS ((C . D) (E . F) . G)) 
;(1 ENTER CONS (B ((C . D) (E . F) . G))) 
;(1 EXIT CONS (B (C . D) (E . F) . G)) 
;(1 ENTER CONS (A (B (C . D) (E . F) . G))) 
;(1 EXIT CONS (A B (C . D) (E . F) . G)) 
;(1 ENTER CONS ((E . F) G)) 
;(1 EXIT CONS ((E . F) . G)) 
;(1 ENTER CONS ((C . D) ((E . F) . G))) 
;(1 EXIT CONS ((C . D) (E . F) . G)) 
;(1 ENTER CONS (B ((C . D) (E . F) . G))) 
;(1 EXIT CONS (B (C . D) (E . F) . G)) 
;(1 ENTER CONS (A (B (C . D) (E . F) . G))) 
;(1 EXIT CONS (A B (C . D) (E . F) . G)) 
;(1 ENTER CONS (B ((C . D) (E . F) . G))) 
;(1 EXIT CONS (B (C . D) (E . F) . G)) 
;(1 ENTER CONS (B ((C . D) (E . F) . G))) 
;(1 EXIT CONS (B (C . D) (E . F) . G)) 
;(1 ENTER CONS (D ((E . F) . G))) 
;(1 EXIT CONS (D (E . F) . G)) 
;(1 ENTER CONS (C (D (E . F) . G))) 
;(1 EXIT CONS (C D (E . F) . G)) 
;(1 ENTER CONS (D ((E . F) . G))) 
;(1 EXIT CONS (D (E . F) . G)) 
;(1 ENTER CONS (C (D (E . F) . G))) 
;(1 EXIT CONS (C D (E . F) . G)) 
;(1 ENTER CONS (D ((E . F) . G))) 
;(1 EXIT CONS (D (E . F) . G)) 
;(1 ENTER CONS (D ((E . F) . G))) 
;(1 EXIT CONS (D (E . F) . G)) 
;(1 ENTER CONS (F G)) 
;(1 EXIT CONS (F . G)) 
;(1 ENTER CONS (E (F . G))) 
;(1 EXIT CONS (E F . G)) 
;(1 ENTER CONS (F G)) 
;(1 EXIT CONS (F . G)) 
;(1 ENTER CONS (E (F . G))) 
;(1 EXIT CONS (E F . G)) 
;(1 ENTER CONS (F G)) 
;(1 EXIT CONS (F . G)) 
;(1 ENTER CONS (F G)) 
;(1 EXIT CONS (F . G)) T 
;(samefr2 x2 y2) 22 cones
;
;(1 ENTER CONS ((C . D) ((E . G) G . H))) 
;(1 EXIT CONS ((C . D) (E . G) G . H)) 
;(1 ENTER CONS (B ((C . D) (E . G) G . H))) 
;(1 EXIT CONS (B (C . D) (E . G) G . H)) 
;(1 ENTER CONS (A (B (C . D) (E . G) G . H))) 
;(1 EXIT CONS (A B (C . D) (E . G) G . H)) 
;(1 ENTER CONS ((C . D) ((E . G) G . H))) 
;(1 EXIT CONS ((C . D) (E . G) G . H)) 
;(1 ENTER CONS (B ((C . D) (E . G) G . H))) 
;(1 EXIT CONS (B (C . D) (E . G) G . H)) 
;(1 ENTER CONS (A (B (C . D) (E . G) G . H))) 
;(1 EXIT CONS (A B (C . D) (E . G) G . H)) 
;(1 ENTER CONS (B ((C . D) (E . G) G . H))) 
;(1 EXIT CONS (B (C . D) (E . G) G . H)) 
;(1 ENTER CONS (B ((C . D) (E . G) G . H))) 
;(1 EXIT CONS (B (C . D) (E . G) G . H)) 
;(1 ENTER CONS (D ((E . G) G . H))) 
;(1 EXIT CONS (D (E . G) G . H)) 
;(1 ENTER CONS (C (D (E . G) G . H))) 
;(1 EXIT CONS (C D (E . G) G . H)) 
;(1 ENTER CONS (D ((E . G) G . H))) 
;(1 EXIT CONS (D (E . G) G . H)) 
;(1 ENTER CONS (C (D (E . G) G . H))) 
;(1 EXIT CONS (C D (E . G) G . H)) 
;(1 ENTER CONS (D ((E . G) G . H))) 
;(1 EXIT CONS (D (E . G) G . H)) 
;(1 ENTER CONS (D ((E . G) G . H))) 
;(1 EXIT CONS (D (E . G) G . H)) 
;(1 ENTER CONS (G (G . H))) 
;(1 EXIT CONS (G G . H)) 
;(1 ENTER CONS (E (G G . H))) 
;(1 EXIT CONS (E G G . H)) 
;(1 ENTER CONS (G (G . H))) 
;(1 EXIT CONS (G G . H)) 
;(1 ENTER CONS (E (G G . H))) 
;(1 EXIT CONS (E G G . H)) 
;(1 ENTER CONS (G (G . H))) 
;(1 EXIT CONS (G G . H)) 
;(1 ENTER CONS (G (G . H))) 
;(1 EXIT CONS (G G . H)) 
;(1 ENTER CONS (G H)) 
;(1 EXIT CONS (G . H)) 
;(1 ENTER CONS (G H)) 
;(1 EXIT CONS (G . H)) T 
;(samefr3 x1 y1) 10 conses
;
;(1 ENTER CONS ((E . F) G)) 
;(1 EXIT CONS ((E . F) . G)) 
;(1 ENTER CONS ((E . F) G)) 
;(1 EXIT CONS ((E . F) . G)) 
;(1 ENTER CONS ((C . D) ((E . F) . G))) 
;(1 EXIT CONS ((C . D) (E . F) . G)) 
;(1 ENTER CONS ((C . D) ((E . F) . G))) 
;(1 EXIT CONS ((C . D) (E . F) . G)) 
;(1 ENTER CONS (B ((C . D) (E . F) . G))) 
;(1 EXIT CONS (B (C . D) (E . F) . G)) 
;(1 ENTER CONS (B ((C . D) (E . F) . G))) 
;(1 EXIT CONS (B (C . D) (E . F) . G)) 
;(1 ENTER CONS (D ((E . F) . G))) 
;(1 EXIT CONS (D (E . F) . G)) 
;(1 ENTER CONS (D ((E . F) . G))) 
;(1 EXIT CONS (D (E . F) . G)) 
;(1 ENTER CONS (F G)) 
;(1 EXIT CONS (F . G)) 
;(1 ENTER CONS (F G)) 
;(1 EXIT CONS (F . G)) T 
;(samefr3 x2 y2) 8 conses
;
;(1 ENTER CONS ((C . D) ((E . G) G . H))) 
;(1 EXIT CONS ((C . D) (E . G) G . H)) 
;(1 ENTER CONS ((C . D) ((E . G) G . H))) 
;(1 EXIT CONS ((C . D) (E . G) G . H)) 
;(1 ENTER CONS (B ((C . D) (E . G) G . H))) 
;(1 EXIT CONS (B (C . D) (E . G) G . H)) 
;(1 ENTER CONS (B ((C . D) (E . G) G . H))) 
;(1 EXIT CONS (B (C . D) (E . G) G . H)) 
;(1 ENTER CONS (D ((E . G) G . H))) 
;(1 EXIT CONS (D (E . G) G . H)) 
;(1 ENTER CONS (D ((E . G) G . H))) 
;(1 EXIT CONS (D (E . G) G . H)) 
;(1 ENTER CONS (G (G . H))) 
;(1 EXIT CONS (G G . H)) 
;(1 ENTER CONS (G (G . H))) 
;(1 EXIT CONS (G G . H)) T